Changing Internal System Behavior
You can configure various RTSS Subsystem behaviors from the Change Internal System Behavior Control Panel page. See below for complete descriptions of the available settings.
NOTE: Some changes to the RTX64 Control Panel require a restart of the RTSS Subsystem. If the Subsystem needs to be restarted, you will see a warning icon at the bottom of the page.
Sections in this Topic:
- Opening this Page in RTX64 Control Panel
- Changing the Startup Type
- Changing the HAL Timer Period
- Changing the default Thread Time Quantum used by the Subsystem
- Modifying the behavior of the Subsystem on TerminateThread calls
- Modifying the Subsystem's use of Priority Inversion
- Configuring Intel RDT (CAT/MBA) Model Settings
Opening this Page in RTX64 Control Panel
To open this page in the Control Panel:
- In the Start menu, navigate to RTX64 4.5 Runtime and click RTX64 Control Panel.
- Click Configure the RTSS Subsystem > Change internal system behavior.
Changing the Startup Type
NOTE: This setting requires Windows Administrator privileges.
To change the Startup Type:
Select a Startup Type:
- Manual – The RTX64 subsystem does not start until you start it manually or until a dependent process runs. This could be either an RTSS application or a Windows application linked to RTX64.
- Automatic – The RTX64 subsystem starts at system boot time during Windows system Services startup (SERVICE_SYSTEM_START).
NOTE: Fast startup must be disabled when RTX64 is set to Automatic startup. Fast startup is automatically disabled during installation of RTX64 Runtime, so it’s likely that no further action is needed. However, if Fast startup was manually enabled following the installation of RTX64 Runtime, you will need to manually disable it. To do this, follow the steps below:
- Open the Windows Control Panel.
- Click Power Options.
- Select Choose what the power buttons do.
- In the System Settings page, select Change settings that are currently unavailable.
- Under Shutdown, clear selection of Turn on fast startup.
- Click Save changes.
Changing the HAL Timer Period
The RTX64 HAL Timer is the primary timer that the RTX64 Subsystem uses for all internal synchronization, timers, and wait functionality. The RTX64 HAL Timer depends on the system hardware and processor. RTX64 performance is deterministic when access to the processor is unimpeded. That is, when there is no SMI/SMM activity.
The default value for the subsystem HAL Timer Period is 100 microseconds. This value can be as low as 10 microseconds or as large as 1,000 microseconds.
This value can have an impact on the responsiveness of your subsystems and applications. Application timers can only have periods as small as the subsystem's HAL timer period or a multiple of it. For example, if the HAL timer period is 50 you can create a timer with a period of 50, 100, 200, but not of 130. A value of 130 would be rounded up to 150. For more information, see Application Timer Expiration Behavior.
NOTE: Use caution when setting the HAL timer period below 20 microseconds. If the HAL timer period is set too low, it can inversely impact performance or cause your system to hang. Fully test the timer period you set with your real-time application on all systems on which you will deploy to verify that the hardware can accomplish the compilations required in the period set.
To change the HAL Timer Period:
- Select a period from the HAL timer period (microseconds) drop-down menu. The available values are:
- 1000, 500, 200, 100 (default), 50, 20, 10, 5, 2, 1
If you have configured a custom HAL timer period not listed in the drop-down menu, you can type it in.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
Changing the Default Thread Time Quantum used by the Subsystem
RTX64 is configured to run the highest-priority thread, either until completion or until it yields. There is no round robin within a given priority level. To change this behavior and have RTX64 provide time slices within a priority level, set the default time quantum for all RTSS threads.
NOTE: If the thread time quantum value is less than the HAL timer period, RTX64 will set the interval to the same value as the HAL timer period. If the thread time quantum interval is greater than the HAL timer period, RTX64 will modulo up the HAL timer period. The thread time quantum interval must be a multiple of the HAL timer period.
To change the default Thread Time Quantum used by the Subsystem:
- Enter a positive integer value in the Time quantum (microseconds) box. A value of 0 (default) means that threads run to completion.
NOTE: An RTSS application can set its own Time Quantum using RTAPI functions.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
Modifying the Behavior of the Subsystem on TerminateThread Calls
The TerminateThread
function causes an RTSS thread to exit. You can
configure RTX64 to not free the memory used for an RTSS thread's stack when
the thread is terminated. This is a useful setting when developing and debugging your applications.
To modify the behavior of the Subsystem on TerminateThread calls:
- Check the box for Free the Stack on TerminateThread calls to free the memory used for an RTSS thread's stack when that thread is terminated. If you do not want the memory to be freed, uncheck this box. The memory will be freed when the Subsystem stops.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
Modifying the Subsystem's use of Priority Inversion
RTX64 thread scheduling behavior settings provide the option of selecting a priority inversion protocol.
To modify the Subsystem's use of Priority Inversion:
- Check the box for Use priority inversion to utilize a tiered-demotion priority inversion protocol. Uncheck this box to disable priority inversion in the Subsystem.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
Configuring Intel® Resource Director Technology (RDT) Settings
These settings allow you to enable/disable Intel Resource Director Technology (RDT) performance optimization and configure the available RDT modes for Cache Allocation Technology (CAT) and Memory Bandwidth Allocation (MBA):
- Cache Allocation Technology (CAT) allows RTX64 to allocate L3 cache or L2 cache for each logical processor.
- Memory Bandwidth Allocation (MBA) allows RTX64 to control the memory bandwidth that is available for each core.
RDT uses Class of Service (CLOS) to configure the L3/L2 cache size and memory throttle (delay). As a matter of RTX64 policy for extensibility, CLOS 0 is considered and configured as the highest priority CLOS, followed by CLOS 1, and so on.
For more information, see Optimizing Performance with Intel Resource Director Technology (RDT).
NOTE: These options will be unavailable if the system hardware does not support Intel® RDT performance optimization.
To enable/disable Intel RDT performance optimization:
- Choose an option:
- To enable performance optimization (default) – Select the Optimize performance with Intel® Resource Director Technology (RDT) check box.
- To disable performance optimization – Clear selection of the Optimize performance with Intel® Resource Director Technology (RDT) check box.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
To change the CAT/MBA modes:
NOTE: RDT performance optimization must be enabled to change CAT/MBA modes.
- Choose a Cache Allocation Technology (CAT) mode:
- Flat performance mode (default) – All RTSS logical processors are equally configured with all RTSS L3/L2 caches.
- Priority-based CLOS performance mode – The L3/L2 caches of each RTSS logical processor are based on the Class of Service (CLOS) of the running thread, thus optimizing the performance of the thread with higher priority CLOS by reducing the L3/L2 cache contention from the thread with the lower priority CLOS.
- Choose a Memory Bandwidth Allocation (MBA) mode:
- Flat performance mode (default) – All RTSS cores are configured with minimum memory delay.
- Priority-based CLOS performance mode – The memory delay of each RTSS logical processor is based on the Class of Service (CLOS) of the running thread; thus, avoiding the performance degradation of the bandwidth-intense thread with higher priority CLOS by throttling the thread that may be over-utilizing memory bandwidth relative to its priority.
NOTE: Because the MBA controller is provided per core (the maximum of the delay values of the per-thread CLOS applies to the core), we recommend that you disable Hyper-Threading in the system BIOS when MBA is set to Priority-based.
- Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.
RELATED Topics:
- User Groups and Access Permissions
- Using the Control Panel
- Configuring the Real-Time Subsystem
- Managing Memory
- Changing Monitor Settings
- Configuring the Watchdog Timer
- Configuring Exception Support
- Configuring Power Management Settings
- Configuring a Search Path
- Configuring Real-Time Application Output
- Configuring Remote Debugging
- Managing RTX64 Devices
- Configuring and Controlling the Network